// for (var i = 0; i < 5; i++) {
//   setTimeout(() => {
//     console.log(i);  // 输出 五个 5      怎么让它输出 0 1 2 3 4？
//   }, 1000)
// }

// 1. 用 let 就会每一步形成一个作用域
// for (let i = 0; i < 5; i++) {
//   setTimeout(() => {
//     console.log(i);
//   }, 1000)
// }

// 2. 借助闭包来完成
// for (var i = 0; i < 5; i++) {
//   function foo(j) {
//     setTimeout(() => {
//       console.log(j);
//     }, 1000)
//   }
//   foo(i)
// }

// 3. 借助定时器第三个参数
for (var i = 0; i < 5; i++) {
  setTimeout(function (j) {
    console.log(j);
  }, 1000, i);
}
